#!/usr/bin/env python3
"""
脚本名称：04_exe.py
面试描述：说明 Python3 中yield 的用法
考察点: yield 是 Python 中用于定义生成器函数（Generator）的关键字，它可以让函数暂停执行并保留当前状态，下次调用时从暂停处继续运行。
生活比喻： return 像一次性做完所有菜的厨师，全部端上桌; yield 像自助餐厨师，你点一道做一道（yield），不浪费食物（内存）
作者：Gavin
创建日期：2025-05-26
版本：1.0
依赖库：无
使用方法： python 04_exe.py
"""


def double_yield():
    x = yield
    while True:
        x = yield x * 2


gen = double_yield()
next(gen)  # 启动生成器
print(gen.send(10))  # 输出: 20
print(gen.send(5))  # 输出: 10


def simple_generator():
    yield 1
    yield 2
    yield 3


gen = simple_generator()

print(next(gen))  # 输出: 1
print(next(gen))  # 输出: 2
print(next(gen))  # 输出: 3
